package cn.tedu.array;

import java.util.Scanner;

public class DoubleArray {
    public static void main(String[] args) {
        //数据类型[][]   数组名 = new 数据类型[一维数组的个数][每个一维数组中元素的个数];
//        int[][] nums = new int[2][3];
//        System.out.println(nums);//[[I@28d93b30
//        int[][] nums = new int[2][];
//        int[][] nums = {{5,3},{21,11,43},{9}};
//        System.out.println(nums);//地址值
//        System.out.println(nums[0]);//[I@1b6d3586
//        System.out.println(nums[0][0]);//5
//        int[][] nums = new int[2][];
//        nums[0] = new int[3];
//        System.out.println(nums[0]);//[I@28d93b30
//        nums[0][0] = 8;
//        System.out.println(nums[0][0]);//8
//        System.out.println(nums[1]);//null

//        int[][] nums = {{5,3},{21,11,43},{9}};
//        System.out.println(nums.length);
//        System.out.println(nums[0].length);
//        for (int i = 0; i <nums.length ; i++) {//下标表示一维数组的下标
////            nums[i] 下标为i的数组
//            for (int j = 0; j <nums[i].length; j++) {//当前一维数组中元素的下标
//                System.out.println(nums[i][j]);
//            }
//        }
//
//        int[][] nums = {{5,3},{21,11,43},{9}};
//        for (int[] num:nums) {//num={88}
//            num[0] = 88;
//            for (int i:num) {
//                i = 99;
//                System.out.println(i);
//            }
//        }
//        System.out.println("===========");
//        for (int[] num:nums) {//num={88}
//            for (int i:num) {
//                System.out.println(i);
//            }
//        }
        //杨辉三角
//        获取用户输入的杨辉三角的行数，输出杨辉三角
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入杨辉三角的行数：");
        int rows = sc.nextInt();
        sc.close();
//        整个杨辉三角看做一个二维数组
        int[][] arrs = new int[rows][];
//        构建外层循环表示行 i
        for (int i = 1; i <= rows; i++) {
            //表示当前行的一维数组的对象创建出来
            arrs[i-1]=new int[i];
            //        构建内层循环 j-表示当前行的元素的下标
            for (int j = 0; j <=i-1 ; j++) {
                //给当前行的当前列赋值
                if(j==0||j==i-1){
                    arrs[i-1][j] = 1;
                }else{
                    arrs[i-1][j] = arrs[i-2][j]+arrs[i-2][j-1];
                }
            }
        }
        //遍历打印杨辉三角
        for (int[] num:arrs) {//num={88}
            for (int i:num) {
                System.out.print(i+"\t");
            }
            System.out.println();
        }
    }
}
